//package cn.nfwx.tv.helper;
//
//import android.content.Context;
//import android.database.sqlite.SQLiteDatabase;
//
//import com.j256.ormlite.android.apptools.OrmLiteSqliteOpenHelper;
//import com.j256.ormlite.dao.Dao;
//import com.j256.ormlite.support.ConnectionSource;
//import com.j256.ormlite.table.TableUtils;
//
//import java.util.HashMap;
//import java.util.Map;
//
//import cn.nfwx.tv.model.DownProgramModel;
//import cn.nfwx.tv.model.TsProgramModel;
//import cn.nfwx.tv.model.TvAppointment;
//
///**
// * Created by dell on 2017/12/8.
// */
//public class DBHelper extends OrmLiteSqliteOpenHelper {
//    /**
//     * 数据库名字
//     */
//    private static final String DB_NAME = "nfwx.db";
//    /**
//     * 数据库版本
//     */
//    private static final int DB_VERSION = 6;
//
//    private Map<String, Dao> daos = new HashMap<String, Dao>();
//    private static DBHelper instance;
//
//
//    public DBHelper(Context context) {
//        super(context, DB_NAME, null, DB_VERSION);
//
//    }
//
//    /**
//     * 获取单例
//     *
//     * @param context
//     * @return
//     */
//    public static synchronized DBHelper getHelper(Context context) {
//        context = context.getApplicationContext();
//        if (instance == null) {
//            synchronized (DBHelper.class) {
//                if (instance == null) {
//                    instance = new DBHelper(context);
//                }
//            }
//        }
//
//        return instance;
//    }
//
//
//    @Override
//    public void onCreate(SQLiteDatabase database, ConnectionSource connectionSource) {
//
//        try {
//            //TableUtils.createTable(connectionSource, AppiontmentModel.class);
//            //TableUtils.createTable(connectionSource, SubscriptionModel2.class);
//            TableUtils.createTable(connectionSource, DownProgramModel.class);
//            TableUtils.createTable(connectionSource, TsProgramModel.class);
//            TableUtils.createTable(connectionSource, TvAppointment.class);
//        } catch (java.sql.SQLException e) {
//            e.printStackTrace();
//        }
//
//
//    }
//
//    @Override
//    public void onUpgrade(SQLiteDatabase database, ConnectionSource connectionSource, int oldVersion, int newVersion) {
//        try {
//            //TableUtils.dropTable(connectionSource, AppiontmentModel.class, true);
//            //TableUtils.dropTable(connectionSource, SubscriptionModel2.class, true);
//            TableUtils.dropTable(connectionSource, DownProgramModel.class, true);
//            TableUtils.dropTable(connectionSource, TsProgramModel.class, true);
//            TableUtils.dropTable(connectionSource, TvAppointment.class, true);
//
//            onCreate(database, connectionSource);
//        } catch (java.sql.SQLException e) {
//            e.printStackTrace();
//        }
//    }
//
//    public void onDrop() {
//        try {
//            //TableUtils.clearTable(getConnectionSource(), AppiontmentModel.class);
//            //TableUtils.clearTable(getConnectionSource(), SubscriptionModel2.class);
//            //TableUtils.clearTable(getConnectionSource(), DownProgramModel.class);
//            //TableUtils.clearTable(getConnectionSource(), TsProgramModel.class);
//            TableUtils.clearTable(getConnectionSource(), TvAppointment.class);
//        } catch (Exception e) {
//            e.printStackTrace();
//        }
//    }
//
//
//    /**
//     * 通过类来获得指定的Dao
//     */
//    public synchronized Dao getDao(Class clazz) throws java.sql.SQLException {
//        Dao dao = null;
//        String className = clazz.getSimpleName();
//        if (!daos.containsKey(className)) {
//            dao = super.getDao(clazz);
//            daos.put(className, dao);
//        } else {
//            dao = daos.get(className);
//        }
//        return dao;
//    }
//
//
//    /**
//     * 释放资源
//     */
//    @Override
//    public void close() {
//        super.close();
//        for (String key : daos.keySet()) {
//            Dao dao = daos.get(key);
//            dao = null;
//        }
//    }
//
//}
